diff --git a/.github/workflows/add-to-release-notes.yml b/.github/workflows/add-to-release-notes.yml index 38fd6d9c88b..be96e3b2ec0 100644 --- a/.github/workflows/add-to-release-notes.yml +++ b/.github/workflows/add-to-release-notes.yml @@ -16,6 +16,6 @@ jobs: if: github.repository == 'HTTPArchive/almanac.httparchive.org' steps: - name: Update release notes - uses: release-drafter/release-drafter@v5.17.6 + uses: release-drafter/release-drafter@v5.18.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/code-static-analysis.yml b/.github/workflows/code-static-analysis.yml index db08fb7bea1..0915e3a4f00 100644 --- a/.github/workflows/code-static-analysis.yml +++ b/.github/workflows/code-static-analysis.yml @@ -35,7 +35,7 @@ jobs: uses: actions/checkout@v2.4.0 - name: Set up Python 3.8 if: ${{ matrix.language == 'python' }} - uses: actions/setup-python@v2.3.1 + uses: actions/setup-python@v2.3.2 with: python-version: '3.8' - name: Install dependencies diff --git a/.github/workflows/lintsql.yml b/.github/workflows/lintsql.yml index 13e9e5f53d5..7c4e62e7ac9 100644 --- a/.github/workflows/lintsql.yml +++ b/.github/workflows/lintsql.yml @@ -19,7 +19,7 @@ jobs: # Full git history is needed to get a proper list of changed files within `super-linter` fetch-depth: 0 - name: Set up Python 3.8 - uses: actions/setup-python@v2.3.1 + uses: actions/setup-python@v2.3.2 with: python-version: '3.8' - name: Lint SQL code diff --git a/.github/workflows/predeploy.yml b/.github/workflows/predeploy.yml index be12e933dd2..422036220cd 100644 --- a/.github/workflows/predeploy.yml +++ b/.github/workflows/predeploy.yml @@ -36,7 +36,7 @@ jobs: with: node-version: '15' - name: Set up Python 3.8 - uses: actions/setup-python@v2.3.1 + uses: actions/setup-python@v2.3.2 with: python-version: '3.8' - name: Install Asian Fonts diff --git a/.github/workflows/test_website.yml b/.github/workflows/test_website.yml index 92411388b8f..c9024bc5414 100644 --- a/.github/workflows/test_website.yml +++ b/.github/workflows/test_website.yml @@ -30,7 +30,7 @@ jobs: with: node-version: '15' - name: Set up Python 3.8 - uses: actions/setup-python@v2.3.1 + uses: actions/setup-python@v2.3.2 with: python-version: '3.8' - name: Run the website diff --git a/src/config/last_updated.json b/src/config/last_updated.json index 589535e04bf..31dc3ad6816 100644 --- a/src/config/last_updated.json +++ b/src/config/last_updated.json @@ -51,87 +51,87 @@ }, "/static/pdfs/web_almanac_2019_en.pdf": { "date_published": "2020-05-15T00:00:00.000Z", - "date_modified": "2022-02-02T00:00:00.000Z", - "hash": "c23cb5aa064f042ab37e87acc59d36fe", + "date_modified": "2022-02-06T00:00:00.000Z", + "hash": "1f0408a5deabd0b70f9616a33eee9c2d", "size": 17 }, "/static/pdfs/web_almanac_2019_en_cover_A5.pdf": { "date_published": "2020-05-15T00:00:00.000Z", - "date_modified": "2022-02-02T00:00:00.000Z", - "hash": "4b51f60a04e0c0ecd6fa147d2b211113" + "date_modified": "2022-02-06T00:00:00.000Z", + "hash": "01ceb5efb3a40c2e1d1a3c28cd293e31" }, "/static/pdfs/web_almanac_2019_en_print_A5.pdf": { "date_published": "2020-05-15T00:00:00.000Z", - "date_modified": "2022-02-02T00:00:00.000Z", - "hash": "e9f619c9873deea477ce27ea088ab914", + "date_modified": "2022-02-06T00:00:00.000Z", + "hash": "1db914e1a8b0aaed13065236626496b0", "size": 16 }, "/static/pdfs/web_almanac_2019_ja.pdf": { "date_published": "2020-05-15T00:00:00.000Z", - "date_modified": "2022-02-02T00:00:00.000Z", - "hash": "fab102840f52009a6da9b8423b6a4826", + "date_modified": "2022-02-06T00:00:00.000Z", + "hash": "81e6ce19a22399abbcece3daa38fa22e", "size": 17 }, "/static/pdfs/web_almanac_2019_ja_cover_A5.pdf": { "date_published": "2020-05-15T00:00:00.000Z", - "date_modified": "2022-02-02T00:00:00.000Z", - "hash": "754b79e757b1dd04d5a2953579010c58" + "date_modified": "2022-02-06T00:00:00.000Z", + "hash": "7d57c754e71b9aecc826966908e922da" }, "/static/pdfs/web_almanac_2019_ja_print_A5.pdf": { "date_published": "2020-05-15T00:00:00.000Z", - "date_modified": "2022-02-02T00:00:00.000Z", - "hash": "0602c4eb5aff15b1301b815a4ccc6751", + "date_modified": "2022-02-06T00:00:00.000Z", + "hash": "883365c17f446aa04d8aa406e86fcdb5", "size": 17 }, "/static/pdfs/web_almanac_2020_en.pdf": { "date_published": "2020-12-08T00:00:00.000Z", - "date_modified": "2022-02-02T00:00:00.000Z", - "hash": "38b147bea6aa1afe96cd3840f67b47b8", + "date_modified": "2022-02-06T00:00:00.000Z", + "hash": "dad7303ede4c48e3bddb497146ee422f", "size": 24 }, "/static/pdfs/web_almanac_2020_en_cover_A5.pdf": { "date_published": "2020-12-09T00:00:00.000Z", - "date_modified": "2022-02-02T00:00:00.000Z", - "hash": "f6905b91c2e2c823cdfa26fe806f297b" + "date_modified": "2022-02-06T00:00:00.000Z", + "hash": "9e680a2eb107d9c71e31f204adbfd9c8" }, "/static/pdfs/web_almanac_2020_en_print_A5.pdf": { "date_published": "2020-12-09T00:00:00.000Z", - "date_modified": "2022-02-02T00:00:00.000Z", - "hash": "2b60d3993cbc07c51fe290e9b3ac1a80", + "date_modified": "2022-02-06T00:00:00.000Z", + "hash": "6f0f8bd31d6010252d24585b91f11cd2", "size": 24 }, "/static/pdfs/web_almanac_2020_ja.pdf": { "date_published": "2021-10-24T00:00:00.000Z", - "date_modified": "2022-02-02T00:00:00.000Z", - "hash": "330a0271e1ddefe20fd084d5bce7302a", + "date_modified": "2022-02-06T00:00:00.000Z", + "hash": "594c6b53c89add8b9a1638d96c13ad88", "size": 24 }, "/static/pdfs/web_almanac_2020_ja_cover_A5.pdf": { "date_published": "2021-10-24T00:00:00.000Z", - "date_modified": "2022-02-02T00:00:00.000Z", - "hash": "d82ac0f97ff2eab857cc547e6f1f2a5d" + "date_modified": "2022-02-06T00:00:00.000Z", + "hash": "a318052a6c4abf7fd424697f3ecf29f6" }, "/static/pdfs/web_almanac_2020_ja_print_A5.pdf": { "date_published": "2021-10-24T00:00:00.000Z", - "date_modified": "2022-02-02T00:00:00.000Z", - "hash": "8835c274674b37f83ca61691f63a1c9c", + "date_modified": "2022-02-06T00:00:00.000Z", + "hash": "8034be028ec290ca9fd99dd10b7db94c", "size": 24 }, "/static/pdfs/web_almanac_2021_en.pdf": { "date_published": "2021-12-01T00:00:00.000Z", - "date_modified": "2022-02-02T00:00:00.000Z", - "hash": "88ac63f193f0715b0726d632e29519bf", + "date_modified": "2022-02-06T00:00:00.000Z", + "hash": "88bc8316184ddee4e54d256f0827e3d6", "size": 32 }, "/static/pdfs/web_almanac_2021_en_cover_A5.pdf": { "date_published": "2021-12-01T00:00:00.000Z", - "date_modified": "2022-02-02T00:00:00.000Z", - "hash": "6cd21ce044de4e655aace0af79089d8f" + "date_modified": "2022-02-06T00:00:00.000Z", + "hash": "27d75e836f33f607d464384b029191a7" }, "/static/pdfs/web_almanac_2021_en_print_A5.pdf": { "date_published": "2021-12-01T00:00:00.000Z", - "date_modified": "2022-02-02T00:00:00.000Z", - "hash": "62f5c2e650c88fa8b0e5673b387c2d29", + "date_modified": "2022-02-06T00:00:00.000Z", + "hash": "99c11d7d6f646a7c78e1137e2b7370d4", "size": 31 }, "en/2019/chapters/accessibility.html": { @@ -516,8 +516,8 @@ }, "en/2021/chapters/seo.html": { "date_published": "2021-12-01T00:00:00.000Z", - "date_modified": "2022-01-30T00:00:00.000Z", - "hash": "097e213b00ae9c66d6ea01587f8c8db0" + "date_modified": "2022-02-06T00:00:00.000Z", + "hash": "800c8816ecdf4aefe4a2a84fe060d7bc" }, "en/2021/chapters/structured-data.html": { "date_published": "2021-11-17T00:00:00.000Z", @@ -1226,8 +1226,8 @@ }, "ja/2021/chapters/seo.html": { "date_published": "2022-01-30T00:00:00.000Z", - "date_modified": "2022-01-30T00:00:00.000Z", - "hash": "aaa049896ba8239bbb5063fc55686541" + "date_modified": "2022-02-06T00:00:00.000Z", + "hash": "4a526a48a086ad6fc1604876557a5bf9" }, "ja/2021/chapters/structured-data.html": { "date_published": "2022-01-03T00:00:00.000Z", diff --git a/src/content/en/2021/seo.md b/src/content/en/2021/seo.md index 6cded34c254..0ec4ab9f1d2 100644 --- a/src/content/en/2021/seo.md +++ b/src/content/en/2021/seo.md @@ -667,12 +667,12 @@ While a significant portion of links on the web are text based, a portion also l ### Link attributes -In September of 2019, Google introduced attributes that allow publishers to classify links as being _sponsored_ or _user-generated content_. These attributes are in addition to `rel=nofollow` which was previously introduced in 2005. The new attributes, `rel=ug` and `rel=sponsored`, add additional information to the links. +In September of 2019, Google introduced attributes that allow publishers to classify links as being _sponsored_ or _user-generated content_. These attributes are in addition to `rel=nofollow` which was previously introduced in 2005. The new attributes, `rel=ugc` and `rel=sponsored`, add additional information to the links. {{ figure_markup( image="rel-attibute-usage.png", caption="Rel attribute usage.", - description="Bar chart showing the usage (in percent) of rel attributes on desktop and mobile. Our data found that that 29.2% of homepages featured nofollow attributes on their desktop version and 30.7% on mobile. Rel=noopener was featured on 31.6% of desktop pages and 30.1% on mobile. Rel=noreferrer was featured on 15.8% of desktop pages and 14.8% of mobile. Rel=dofollow, Rel=ugc, Rel=sponsored, and Rel=follow were all featured on fewer than 1% of desktop and mobile pages.", + description='Bar chart showing the usage (in percent) of rel attributes on desktop and mobile. Our data found that that 29.2% of homepages featured nofollow attributes on their desktop version and 30.7% on mobile. `rel="noopener"` was featured on 31.6% of desktop pages and 30.1% on mobile. `rel="noreferrer"` was featured on 15.8% of desktop pages and 14.8% of mobile. `rel="dofollow"`, `rel="ugc"`, `rel="sponsored"`, and `rel="follow"` were all featured on fewer than 1% of desktop and mobile pages.', chart_url="https://docs.google.com/spreadsheets/d/e/2PACX-1vQ7oSHa6DHYTfZqsuGmIYdlfYVkwrUvOYD_r6soecExV_ZpbbZjmG6watu0hwrOKqK3-inNrt0TfXCO/pubchart?oid=1672151299&format=interactive", sheets_gid="1936997045", sql_file="anchor-rel-attribute-usage.sql" @@ -705,7 +705,7 @@ However, AMP adoption continued to increase in 2021. 0.09% of desktop pages now
If you have multiple versions of a page for different languages or regions, tell Google about these different variations. Doing so will help Google Search point users to the most appropriate version of your page by language or region.
-
Google SEO documentation
+
Google SEO documentation
To let search engines know about localized versions of your pages, use `hreflang` tags. `hreflang` attributes are also used by Yandex and Bing ([to some extent](https://twitter.com/facan/status/1304120691172601856)). @@ -724,7 +724,7 @@ To let search engines know about localized versions of your pages, use `hreflang 9.0% of desktop pages and 8.4% of mobile pages use the hreflang attribute. -There are three ways of implementing `hreflang` information: in HTML `` elements, `X-robots` headers, and with XML sitemaps. This data does not include data for XML sitemaps. +There are three ways of implementing `hreflang` information: in HTML `` elements, `Link` headers, and with XML sitemaps. This data does not include data for XML sitemaps. The most popular hreflang attribute is `"en"` (English version). 4.75% of mobile homepages use it and 5.32% of desktop homepages. diff --git a/src/content/ja/2021/seo.md b/src/content/ja/2021/seo.md index 5b1d4cd3caf..4f90f1f37cd 100644 --- a/src/content/ja/2021/seo.md +++ b/src/content/ja/2021/seo.md @@ -667,12 +667,12 @@ Core Web Vitalsは、Googleのページ体験シグナルの一部である新 ### リンク属性 -2019年9月、Googleはリンクを_スポンサー_または_ユーザーが作成したコンテンツ_に分類できる属性を導入しました。これらの属性は、以前2005年に導入された`rel=nofollow`を追加したものです。新しい属性である `rel=ug` と `rel=sponsored` は、リンクに追加情報を与えます。 +2019年9月、Googleはリンクを_スポンサー_または_ユーザーが作成したコンテンツ_に分類できる属性を導入しました。これらの属性は、以前2005年に導入された`rel=nofollow`を追加したものです。新しい属性である `rel=ugc` と `rel=sponsored` は、リンクに追加情報を与えます。 {{ figure_markup( image="rel-attibute-usage.png", caption="Rel属性の使用状況。", - description="デスクトップとモバイルでのrel属性の使用率(%)を示す棒グラフ。当社のデータでは、デスクトップ版で29.2%、モバイル版では30.7%のホームページがnofollow属性を採用していることがわかりました。Rel=noopenerは、デスクトップページの31.6%、モバイルページの30.1%で採用されました。Rel=noreferrerはデスクトップページの15.8%、モバイルページの14.8%に掲載されました。Rel=dofollow、Rel=ugc、Rel=sponsored、Rel=followはいずれもデスクトップとモバイルのページの1%未満にしか表示されませんでした。", + description='デスクトップとモバイルでのrel属性の使用率(%)を示す棒グラフ。当社のデータでは、デスクトップ版で29.2%、モバイル版では30.7%のホームページがnofollow属性を採用していることがわかりました。`rel="noopener"`は、デスクトップページの31.6%、モバイルページの30.1%で採用されました。`rel="noreferrer"`はデスクトップページの15.8%、モバイルページの14.8%に掲載されました。`rel="dofollow"`、`rel="ugc"`、`rel="sponsored"`、`rel="follow"`はいずれもデスクトップとモバイルのページの1%未満にしか表示されませんでした。', chart_url="https://docs.google.com/spreadsheets/d/e/2PACX-1vQ7oSHa6DHYTfZqsuGmIYdlfYVkwrUvOYD_r6soecExV_ZpbbZjmG6watu0hwrOKqK3-inNrt0TfXCO/pubchart?oid=1672151299&format=interactive", sheets_gid="1936997045", sql_file="anchor-rel-attribute-usage.sql" @@ -705,7 +705,7 @@ Core Web Vitalsは、Googleのページ体験シグナルの一部である新
言語や地域によって複数のバージョンのページがある場合は、Googleにそのことを伝えてください。そうすることで、Google検索がユーザーに言語や地域ごとにもっとも適切なバージョンのページを提供することができます。
-
Google SEOのドキュメント
+
Google SEOのドキュメント
検索エンジンにローカライズされたページを知らせるには、`hreflang`タグを使用します。`hreflang`属性は、Yandex やBing([ある程度](https://twitter.com/facan/status/1304120691172601856))でも使用されています。 @@ -724,7 +724,7 @@ Core Web Vitalsは、Googleのページ体験シグナルの一部である新 デスクトップ用ページの9.0%、モバイル用ページの8.4%がhreflang属性を使用しています。 -`hreflang` 情報の実装方法には、HTMLの `` 要素、 `X-robots` ヘッダー、XMLサイトマップの3つがあります。このデータには、XMLサイトマップのデータは含まれていない。 +`hreflang` 情報の実装方法には、HTMLの `` 要素、 `Link` ヘッダー、XMLサイトマップの3つがあります。このデータには、XMLサイトマップのデータは含まれていない。 hreflang属性でもっとも利用されているのは、`"en"`(英語版)です。モバイル用ホームページの4.75%、デスクトップ用ホームページの5.32%が使用しています。 diff --git a/src/requirements.txt b/src/requirements.txt index d2e9674bc4a..78ce9c00ffe 100644 --- a/src/requirements.txt +++ b/src/requirements.txt @@ -1,7 +1,7 @@ flask==2.0.2 flask-talisman==0.8.1 gunicorn==20.1.0 -pytest==6.2.5 +pytest==7.0.0 pytest-watch==4.2.0 pytest-cov==3.0.0 sqlfluff==0.9.4