5/5 - (25 bình chọn)

Nếu bạn dùng plugin SEO như Rank math hoặc Yoast SEO và tạo sitemap để submit cho Google đọc dữ liệu nhưng 1 ngày đẹp trời bạn truy cập vào sitemap https://domain-cua-ban.com/sitemaps.xml hoặc https://domain-cua-ban.com/sitemap_index.xml và gặp lỗi như sau.

This page contains the following errors:
error on line 2 at column 11: XML declaration allowed only at the start of the document
Below is a rendering of the page up to the first error.

Sửa lỗi sitemap
Sửa lỗi sitemap

Hoặc bị như sau:

This page contains the following errors:
error on line 2 at column 11: XML declaration allowed only at the start of the document
Below is a rendering of the page up to the first error.

Sửa lỗi sitemap XML declaration allowed only at the start of the document
Sửa lỗi sitemap XML declaration allowed only at the start of the document

line 2 và column 11 thì có thể thay đổi do tuỳ theo đoạn code, nhưng tổng thể là lỗi XML declaration allowed only at the start of the document thì bạn có thể xử lý nhanh theo cách dưới đây.

Các sửa lỗi This page contains the following errors

Bạn cần đăng nhập vào hosting vào thư mục cài đặt website WordPress (thư mục gốc chứa source WP) sau đó tạo mới 1 file có tên là: fixsitemap.php sau đó dán code phía dưới vào file vừa tạo.

<?php
function ___wejns_wp_whitespace_fix($input) {
    $allowed = false;
    $found = false;
    foreach (headers_list() as $header) {
        if (preg_match("/^content-type:\\s+(text\\/|application\\/((xhtml|atom|rss)\\+xml|xml))/i", $header)) {
            $allowed = true;
        }
        if (preg_match("/^content-type:\\s+/i", $header)) {
            $found = true;
        }
    }
    if ($allowed || !$found) {
        return preg_replace("/\\A\\s*/m", "", $input);
    } else {
        return $input;
    }
}
ob_start("___wejns_wp_whitespace_fix");

Tiếp theo, bạn hãy mở file wp-config.php. Tiếp đó thêm vào sau thẻ mở <?php code sau:

define('INCLUDE_SITEMAP_FIX', true);
if (defined('INCLUDE_SITEMAP_FIX') && INCLUDE_SITEMAP_FIX) {
    require_once(__DIR__ . '/fixsitemap.php');
}

Add code vào đầu file wp-config.php

Add code vào đầu file wp-config php
Add code vào đầu file wp-config php

Ban đầu tôi hướng dẫn thêm vào file index.php nhưng nếu bạn cập nhật wp core thì chúng sẽ bị ghi đè và sitemap sẽ bị lỗi, nên cách ở trên sẽ giải quyết vấn đề triệt để hơn nhé. Sau khi add code sitemap sẽ load bình thường.

Kiểm tra Sitemap hoạt động bình thường không
Kiểm tra Sitemap hoạt động bình thường không

Nguyên nhân chính

Lỗi “XML declaration allowed only at the start of the document” xảy ra khi khai báo XML (ví dụ: <?xml version=”1.0″ encoding=”UTF-8″?>) không nằm ở dòng đầu tiên, cột đầu tiên của tài liệu. Dưới đây là các nguyên nhân phổ biến và cách khắc phục:

  • Khoảng trắng hoặc ký tự thừa trước khai báo XML
    • Dấu cách, ký tự xuống dòng, hoặc mã BOM (Byte Order Mark) vô tình được thêm vào trước <?xml.
    • Ví dụ:

xml

<!-- Lỗi: Có khoảng trắng trước khai báo -->
<?xml version="1.0" encoding="UTF-8"?>

  • Lỗi xuất dữ liệu từ mã nguồn (PHP, ASP.NET, etc.)
    • Nếu XML được tạo động bằng code (như PHP), có thể có ký tự hoặc dữ liệu khác được in ra trước khai báo XML.
    • Ví dụ trong PHP:

php

<?php
// Lỗi: Có khoảng trắng trước thẻ <?php
echo " "; // Output thừa
header('Content-Type: application/xml');
echo '<?xml version="1.0" encoding="UTF-8"?>';
?>

  • File được lưu với Encoding chứa BOM:Một số editor (Notepad++, Visual Studio) thêm BOM vào đầu file khi lưu với encoding UTF-8, gây lỗi.
  • Include file hoặc code thừa: File được include (ví dụ: header.php, config.php) có thể chứa ký tự hoặc dữ liệu output trước khai báo XML

Hy vọng bài viết về lỗi XML declaration allowed only at the start of the document trong tạo Sitemap.xml sẽ giúp ích được cho nhiều người gặp phải vấn đề khi tạo sitemap. Xin cảm ơn.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Khuyến mãi Shopee