Найти в Дзене
Бронислав Краснер

RSS и элемент guid

GUID - это глобальный уникальный идентификатор. Элемент guid в RSS ленте определяет уникальность поста. И в большинстве случаев в это поле помещают адрес страницы, т. е. фактически дублирует элемент link. В принципе этот элемент не является обязательным, и нужен для защиты от дублирования при переносе контента на другой адрес. Но Feed Validation Service (https://validator.w3.org/feed/) относится к этому элементу трепетно и, в случае его отсутствия, выдает предупреждения. Разумеется, эти предупреждения можно игнорировать, это же не ошибка. Тем более, что предупреждение будет не для каждого элемента item, а одно. Правда, с указанием сколько раз валидатор хотел его видеть). Но тонкая душа перфекциониста переносит это тяжело. И если вы к ним не относитесь, то дальше можете не читать.
А как быть, если вы свою страницу дополнили (расширили, углубили) и желаете сообщить об этом миру через RSS ленту? Законное желание, но что указать в элементе guid? Если вы уже публико

GUID - это глобальный уникальный идентификатор. Элемент guid в RSS ленте определяет уникальность поста. И в большинстве случаев в это поле помещают адрес страницы, т. е. фактически дублирует элемент link. В принципе этот элемент не является обязательным, и нужен для защиты от дублирования при переносе контента на другой адрес. Но Feed Validation Service (https://validator.w3.org/feed/) относится к этому элементу трепетно и, в случае его отсутствия, выдает предупреждения.

Разумеется, эти предупреждения можно игнорировать, это же не ошибка. Тем более, что предупреждение будет не для каждого элемента item, а одно. Правда, с указанием сколько раз валидатор хотел его видеть).

Но тонкая душа перфекциониста переносит это тяжело. И если вы к ним не относитесь, то дальше можете не читать.
А как быть, если вы свою страницу дополнили (расширили, углубили) и желаете сообщить об этом миру через RSS ленту? Законное желание, но что указать в элементе guid? Если вы уже публиковали новость с этим линком и guid, то повторный идентификатор приведет не к предупреждению, а к ошибке. Идентификатор должен быть уникальным для вашей ленты.

Для обхода этого я использовал следующее.
К адресу страницы добавил знак вопроса и текущую дату одним числом.
Например, так:


<guid isPermaLink="false">https://www.celitel.info/klad/usim.php?20241121</guid>

Т. е. создаем вид, что у страницы есть параметр. При этом желательно атрибуту isPermaLink присвоить значение false, что означает, что значение элемента не содержит адрес страницы, и искать его нужно в элементе link.
Таким образом можно избавиться от предупреждения валидатора и избежать ошибок при неоднократном упоминании одной страницы в ленте.