Google 将我的站点地图索引为 HTML

问题描述 投票:0回答:2

我找不到解决方案,我也在Google论坛上询问过,但他们还没有解决问题。

由于我的网页每天都在变化,我正在使用 PHP 生成动态站点地图。我为此遵循的过程:

1.- 使用以下代码创建一个名为

sitemap.php
的文件:

<?php
header("Content-type: text/xml");
echo "<?xml version='1.0' encoding='UTF-8'?>";
echo "<urlset xmlns='http://www.sitemaps.org/schemas/sitemap/0.9'
        xmlns:news='http://www.google.com/schemas/sitemap-news/0.9'>";

    require 'admin/config.php';
    require 'funciones.php';

    try {
        $conexion = new PDO($bd_config['dbname'], $bd_config['usuario'], $bd_config['password'] );
    } catch (PDOException $e) {
        header ('Location: error.php');
        echo "ERROR: ".$e->getMessage();
        die();
    }

//CODE 

echo "</urlset>\n";

?>

2.- 在

.htaccess
文件中我插入以下代码:

RewriteRule ^sitemap\.xml$ sitemap.php [L]

3.- 最后,在

robots.txt
文件中添加其他代码:

Sitemap: http://www.laxtore.com/sitemap.php

但是每当我在 Google 中上传文件时,它都会将其识别为 HTML 文件,即使我转到文件目录,XML 也会正确生成。您可以在这里查看:http://www.laxtore.com/sitemap.php

由于声誉问题,我还无法分享图像(我是新来的)。

¿有办法解决这个问题吗?我也尝试过使用在线生成的 xml,即使使用该文件,我也收到相同的错误

编辑:

Google 支持人员告诉我,我不能使用此结构:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
  <url>
    <loc>http://www.example.org/business/article55.html</loc>
    <news:news>
      <news:publication>
        <news:name>The Example Times</news:name>
        <news:language>en</news:language>
      </news:publication>
      <news:genres>PressRelease, Blog</news:genres>
      <news:publication_date>2008-12-23</news:publication_date>
      <news:title>Companies A, B in Merger Talks</news:title>
      <news:keywords>business, merger, acquisition, A, B</news:keywords>
      <news:stock_tickers>NASDAQ:A, NASDAQ:B</news:stock_tickers>
    </news:news>
  </url>
</urlset>

但是他们在其网站上作为示例:https://support.google.com/news/publisher/answer/74288?hl=es

编辑2:

尝试修改该结构并仅使用:

echo "<url>\n";
          echo "<loc>http://www.laXtore.com/noticia/" . $articulo['ID'] . "/" . limpia_url($articulo['titulo']) . "/</loc>\n";
          echo "<changefreq>daily</changefreq>\n";
          echo "<priority>1</priority>\n";
        echo "</url>\n";

我一直遇到同样的问题。我认为这可能是由于

www.
重定向或其他原因造成的。在Google网站管理员工具中,当我发送站点地图时,URL是
http://laxtore.com/sitemap.php
,但是要访问站点地图我必须引入
http://www.laxtore.com/sitemap.php
,否则不收费。

php xml sitemap
2个回答
0
投票

尝试向 Google 发送您的 XML 站点地图,我认为如果站点地图不以 .xml 结尾,Google 不会将站点地图识别为 XML。 https://www.laxtore.com/sitemap.xml

您尝试过的这种结构:

?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
  <url>
    <loc>http://www.example.org/business/article55.html</loc>
    <news:news>
      <news:publication>
        <news:name>The Example Times</news:name>
        <news:language>en</news:language>
      </news:publication>
      <news:genres>PressRelease, Blog</news:genres>
      <news:publication_date>2008-12-23</news:publication_date>
      <news:title>Companies A, B in Merger Talks</news:title>
      <news:keywords>business, merger, acquisition, A, B</news:keywords>
      <news:stock_tickers>NASDAQ:A, NASDAQ:B</news:stock_tickers>
    </news:news>
  </url>
</urlset>

是 Google 新闻的站点地图,只能由发布商使用。

你还应该有一个www。 Search Console 帐户(如果您将此作为您的网站网址)。


0
投票

我认为问题与您的浏览器未获取正确的 Content-Type 以及将 XML 代码显示为纯文本而不是 XML 文档有关。尝试将代码第 2 行的 Content-Type HTTP 标头更改为

application/xml
,如下所示:

<?php
header("Content-type: text/xml");

此外,由于您已在步骤 2 中正确设置了从

/sitemap.xml
/sitemap.php
的 URL 重写,因此我建议您更新 robots.txt 文件以声明 XML 站点地图的重写 URL,如下所示:

Sitemap: http://www.laxtore.com/sitemap.xml

最后,为了提高性能并减少带宽消耗,请考虑将 XML 输出写入静态 XML 文件,而不是在对此 URL 的每个请求上运行代码,并确保您的静态 XML 站点地图文件返回

application/xml
HTTP Content-Type(请参阅我的回答:我应该为 XML 站点地图发送什么 Content-Type 值?)。

© www.soinside.com 2019 - 2024. All rights reserved.