Google Search Console 上の
作った
プログラムから、 モバイルフレンドリーテストを 実行する 動機
実際に
定期的に
確認したい URL が
複数あり、 モバイルフレンドリテストを 一括実行したい。
複数対象 URL がある 場合、 1つ 1つ 画面から 実行するのは 結構たいへんです。 定期的に、
自動実行したい。
リリース毎に手動での 確認は 工数が かかります。 日次で 問題が 発生していないかを 確認したいです。
スケジューラーからスクリプト実行する ことで、 忘れる ことなく 実行が できます。
作成した スクリプトに ついて
作成した
sitemap.xml から、
チェックする 対象の url の 一覧を 取得する 取得した url に
対して、 URL Testing Tools API を 使って、 モバイルフレンドリーテストを 実行する
1. sitemap.xml から、 チェックする 対象の url の 一覧を 取得する
以下の
console に
pip インストール
実行には、requests
と、beautifulsoup4
が必要に なります。 pip install requests pip install beautifulsoup4
get_url_from_sitemap.py
# -*- coding: utf-8 - import requests import argparse from bs4 import BeautifulSoup def main(): parser = argparse.ArgumentParser(description="description goes here") parser.add_argument( "-url", type=str, help="help text goes here. This option is required", required=True) command_arguments = parser.parse_args() soup = BeautifulSoup(requests.get(command_arguments.url).text, "xml") for loc in soup.find_all('loc'): print(loc.get_text()) if __name__ == '__main__': main()
実行コマンド
以下、コマンド実行で、 sitemap.xml に 記載されている 一覧が、 プロンプトに 出力されます。 python get_url_from_sitemap.py -url https://www.monotalk.xyz/sitemap.xml
エラーに
なっている URLの 一覧を 取得したい 場合
Google Search Console の、モバイルユーザビリティの ページから、
CSVダウンロードできますので、エラーと なったURLのみ 取得する 場合は、 それで いいかと 思います。
2. 取得した url に 対して、 URL Testing Tools API を 使って、 モバイルフレンドリーテストを 実行する
以下のURL Testing Tools API
を
モバイルフレンドリーテストを
API キーの
発行
実行には、Google Developer Console から API キーの 発行が 必要に なります。
API キーには、referer の 設定を 行ってください。 pip インストール
実行には、requests
が必要に なります。 pip install requests
validate_mobile_friendly.py
# -*- coding: utf-8 - import requests import argparse API_URL = "https://searchconsole.googleapis.com/v1/urlTestingTools/mobileFriendlyTest:run" def main(): parser = argparse.ArgumentParser(description="description goes here") parser.add_argument( "-key", type=str, help="help text goes here. This option is required", required=True) parser.add_argument( "-url", type=str, help="help text goes here. This option is required", required=True) parser.add_argument( "-referer", type=str, help="help text goes here. This option is optional", required=False) command_arguments = parser.parse_args() payload = {'url': command_arguments.url} headers = {'Content-Type': 'application/json'} if (command_arguments.referer): headers.update({'referer': command_arguments.referer}) response = requests.post( API_URL + "?key=" + command_arguments.key, params=payload, headers=headers) print("URL=" + command_arguments.url) print("RESULT=" + response.text) if __name__ == '__main__': main()
実行コマンド
-key
には、APIキーを、 -referer
には、APIキーに 設定した リファラーを、 -url
には、チェック対象の URL を 設定してください。 python validate_mobile_friendly.py -key api_key -referer your_referer -url your_url
アウトプット
以下のようなアウトプットが 出力されます。 テスト結果URL=https://www.monotalk.xyz/blog/jackson-covertvalue-exclude-fields-no-annotation/ RESULT={ "testStatus": { "status": "COMPLETE" }, "mobileFriendliness": "MOBILE_FRIENDLY", "resourceIssues": [ { "blockedResource": { "url": "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js" } } ] }
NG の 場合は、 mobileFriendliness
の戻り値が、 NOT_MOBILE_FRIENDLY
になります。
URL Testing Tools API の 使用上限に ついて
Usage Limits | URL Testing Tools API (Experimental) | Google Developers に1 QPS (1 秒間に<wbr> 1 回)
です。
Per-user limit (calls made by the same user): 1 QPS Per-project limit (calls made using the same Developer Console key): 1 QPS
実際、Experimental
と
実行間隔と
スクリプトは
当初作成した
出力された 警告に ついての 対処
テスト時の
よろしければご
以上です。
コメント