Khắc phục lỗi sitemap XML declaration allowed only at the start of the document

Khắc phục lỗi sitemap XML declaration allowed only at the start of the document

Bài viết hôm nay mình sẽ hướng dẫn bạn cách xử lý lỗi error on line 2 at column 6: XML declaration allowed only at the start of the document khi truy cập vào Sitemap được tạo bằng Plugin Yoast SEO hoặc Rank Math.

Một số thông báo lỗi dạng khác​

  • XML or text declaration not at start of entity
  • XML declaration allowed only at the start of the document
  • Error on line 3 at column 6: XML declaration allowed only at the start of the do
  • XML declaration allowed only at the start of the document
  • XML or text declaration not at the start of entity
Tình trạng lỗi chung là truy cập vào link sitemap của website https://my-domain/sitemap_index.xml hoặc bất cứ file sitemap nào thì cũng sẽ gặp lỗi như ảnh dưới đây.

1721774748323.png

Và nguyên nhân chính là trong code của bạn, có thể là ở wp-config.php hoặc functions của theme đã tạo ra các khoảng trống tại vị trí các dòng và cột tương ứng như thông báo.

1721776191220.png

Chính vì thế, việc tạo sitemaps sẽ diễn ra sự cố và từ đó website sẽ hiện ra cho chúng ta một thông báo lỗi như ảnh trên

Và một trường hợp khác cũng sẽ phát sinh lỗi tương tự, bạn view-source của url sitemap đó, thì sẽ nhìn thấy tương tự như ảnh dưới đây của mình. Sẽ thấy ở đầu sitemap có khoảng trống, và đây cũng là nguyên nhân của việc sitemap của bạn sẽ bị lỗi trong Google Search Console

1721775490190.png

Cách khắc phục lỗi XML declaration allowed only at the start of the document​

Bước 1: Đăng nhập hosting và tạo file white-spacefix.php​

Để khắc phục lỗi này rất đơn giản, bạn đăng nhập vào hosting, tiếp theo vào thư mục cài đặt website WordPress sau đó tạo mới 1 file có tên là: white-spacefix.php và dán code phía dưới vào file vừa tạo.

PHP:
<?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");
?>

Bước 2: Include code vào index.php​

Tiếp theo, bạn hãy mở file index.php (file index.php nó nằm ngay thư mục bạn vừa tạo file white-spacefix.php luôn nhé)

sua-loi-sitemap-xml-declaration-allowed-only-at-the-start-of-the-document.png

Mở file index.php lên, và đưa code include('white-spacefix.php'); vào ngay dưới<?php của file index. Như hình dưới đây
1721788632652.jpeg

Bước 3: Mở file white-spacefix.php trên trình duyệt​

Lúc này, bạn mở trình duyệt lên và truy cập vào file white-spacefix.php theo đường dẫn domain-cua-ban/white-spacefix.php, kết quả sẽ thấy một màn hình trắng bóc. Đừng lo, đấy không phải là lỗi mà đó là tính năng :p

Bây giờ, bạn truy cập lại sitemap của website của bạn để thấy được kết quả mới. sitemap.xml của bạn đã hiển thị nội dung của website rồi nhé.

sitemap-sua-loi-sitemap-xml-declaration-allowed-only-at-the-start-of-the-document.jpg

Chúc anh em thành công. Có vướng mắc gì, comment xuống dưới cho mình nhé :)

Nguồn tham khảo
 
Sửa lần cuối:
  • Like
Reactions: bacduong