web-dev-qa-db-ja.com

robots.txtが更新されない

本日、ウェブマスターツールから「GooglebotはCSSおよびJSファイルにアクセスできません」という電子メールを受け取りました。だから私は私のサーバーのルートにある私のrobots.txtファイルを更新することに着手した。

元のコンテンツ:

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/plugins/
Disallow: /wp-content/themes/ #<--CAUSE OF THE PROBLEM

Sitemap: http://example.com/sitemapindex.xml

ファイルから「Disallow:/ wp-content/themes /」という行を削除してファイルを再アップロードしましたが、ブラウザで新しいファイルを表示しても何も変わっていません。

1)ルートから.txtファイルを削除しました

2)キャッシュをクリアしました(W3 Total Cache)

それでもrobots.txtは私のブラウザで見ることができました。これは、ファイルが事実上正しく生成されているということを意味するにすぎませんか。キャッシングが行われていないことを確認するために、私は別のブラウザで表示することさえしました。

何度調べても、robots.txtが更新されないのはなぜなのか、それがどこから生成されているのかという答えが見つかりませんでした。

ここで誰が何が起こっているのかについて何かアイデアを持っていますか?

私が使用するいくつかのプラグイン:

1) Better WordPress Google XML Sitemaps
2) W3 Total Cache
3) Yoast SEO

どうぞよろしくお願いします。

1
user1356029

通常、ディスクにWordPressファイルがある場合は、WordPressが関与する前に、まずApacheまたはNginxによって直接提供されます。

これはあなたのvirtualhost設定で行われます。 Nginxでは通常、次のようになります。これは、index.phpにURLを処理させ、必要に応じてページを生成させる前に、実際のファイルを最初に試すように指示します。

location / {
    index index.php index.html;
    try_files $uri $uri/ /index.php?$args;
}

そのため、robots.txtが無視されている場合は、Webサーバーの設定に問題がある可能性があります。

私はちょうどあなたが15のテーマであなたが言及したそれらの3つのプラグインを試してみました、そして、すべてはうまくいっていました。 Yoast SEOでは、管理ページからrobots.txtを編集できます(SEO> Tools> File Editorに移動します)。

robots.txtファイルが見つからない場合、またはコントロールがWordPressに渡された場合、デフォルトの出力は次のとおりです。

User-agent: *
Disallow: /wp-admin/

これがどのように機能するかについてはwp-includes/functions.phpを参照してください。ただし、コアファイルを編集しないでください。

これはアクションやフィルタを使ってカスタマイズできます。たとえば、BWPサイトマッププラグインはSitemap:行を追加します。

do_robotsdo_robotstxtにフックしているプラ​​グイン(あるいはあなたのテーマの中の何か)が見つからない場合、これはおそらく仕事をするあなたのテーマのfunctions.phpファイルのためのハックです:

/**
 * Remove unwanted 'themes' from robots.txt with find/replace
 * @param string $input original robots.txt content
 *
 * @return string mixed
 */
function patch_robots_file( $input ) {
    return str_replace( 'Disallow: /wp-content/themes/', '', $input );
}

add_filter( 'robots_txt', 'patch_robots_file' );
1
William Turrell