1

Disallow: /와 함께 허용 된 robots.txt가 Google과 예상대로 작동하지 않는 문제가 있습니다.Google에서 'robots.txt에 의해 차단 된 URL이 포함 된 Sitemap'경고

구글의 robots.txt 규칙을 제한하는 문제가 있습니다

User-agent: * 
Host: sitename 
Allow: /$ 
Allow: /sitemap.xml 
Allow: /static/ 
Allow: /articles/ 
Disallow:/
Disallow: /static/*.js$ 
sitemap.xml의 구글에 / 수많은 /articles/...의 URL :

<url><loc>http://sitename/</loc><changefreq>weekly</changefreq></url> 
<url><loc>http://sitename/articles/some-article</loc><changefreq>weekly</changefreq></url> 
<url><loc>http://sitename/articles/...</loc><changefreq>weekly</changefreq></url> 
... 

크롤링/robots.txt에 테스터을 포함

검색 콘솔에서이를 올바르게 해석하면 허용 된 URL로 표시됩니다 ('Fetch as Google'도 마찬가지 임).

사이트 이름/

사이트 이름/기사/일부-기사 그러나

, 크롤링가/사이트 맵가 sitemap.xml의 모든 /articles/... URL에 대한 문제를 가지고 있음을 보여주고, 경고가 에서 보고서 :

맵 robots.txt에 의해 차단 된 URL이 포함

,

따라서 /의 색인이 생성됩니다 (Google이 사이트 맵 보고서에서 불평하지는 않았지만 어느 시점에서 색인에서 제외 되었음조차도).

이 설정 뒤에 그 이유는 구글이 제대로 SPA 경로를 렌더링 할 수없는, 그래서 일부 SPA 노선 (//articles/...)의 조각으로 미리 렌더링하고 (다른 경로는 아직 사전 렌더링되지 않은 크롤링 수 있다고, 그것은 바람직하지 않다 그 (것)들을 순간에 포복하기 가능하게하십시오). 일시적

나는 조각없이 모든 알려진 경로의 블랙리스트에 Disallow: /을 교체하고 문제가 사라 :

User-agent: * 
Host: sitename 
Allow: /$ 
Allow: /sitemap.xml 
Allow: /static/ 
Allow: /articles/ 
Disallow: /blacklisted-route1 
Disallow: /blacklisted-route2 
... 
Disallow: /static/*.js$ 

전자의 접근 방식의 문제는 무엇입니까? 왜 Google은 그런 행동을합니까?

robots.txt 규칙은 매우 모호하며 Google의 robots.txt 테스터는이를 확인합니다.

답변

1

allow /$disallow / 일 때 허용하지 않습니다 (그룹 회원 레코드의 우선 순위는 https://developers.google.com/search/reference/robots_txt 참조).

첫 번째 규칙에 대한 지난 규칙에 대한 나의 이전 의견에 대해서는 잊어 버리십시오. 귀하의 경우에는 적용되지 않습니다.

조각을 제거하려면 정식 태그를 사용하십시오. Google이 귀하의 페이지를 크롤링하지 않게하려면 nofollow을 설정하십시오.

+0

여기에서 Disallow/Allow 주문이 중요하며 Disallow가 먼저 와야합니다. – estus

+0

당신은 그걸 실제로 시도해 볼 수 있습니다 ...하지만 오해의 소지가 있기 때문에 제 대답을 업데이트하고 있습니다 ... – JVerstry

+0

아, 미안합니다. 귀하의 경우에 맞는 답이 아닌 그대로 답변을 업데이트하고 있습니다. – JVerstry

관련 문제