Я бы сказал, что страницы с ссылками на себя, как вы говорите, не следуют надлежащему разделению интересов. Вы делаете 2 разные вещи с одной и той же страницей, где чистое разделение логики заставит вас сделать их на 2 разных страницах.
Эта практика подчеркивается MVC (модель-представление-контроллер, http://en.wikipedia.org/wiki/Model-view-controller) фреймворки, такие как Ruby on Rails, Django и ASP.NET MVC (я не знаю PHP-топов моя голова, хотя я уверен, что есть некоторые).
Это также важная особенность практики RESTful (REpresentational State Transfer), где каждый URL представляет ресурс и одно действие, которое должно быть выполнено с этим ресурсом. С другой стороны, ссылочная страница будет иметь «2» действия на URL / страницу, такие как «new» (чтобы заполнить форму) и «create» (чтобы фактически создать объект).
Практика MVC и RESTful (http://en.wikipedia.org/wiki/RESTful) практики для веб-сайтов часто приводят к более чистому коду и лучшему разделению задач. Причина этого важна в том, что это облегчает тестирование (а под тестированием я имею в виду единичное и функциональное тестирование, а не тестирование страницы в моем браузере).
Беспорядок в вашей статистике является примером того, как неразделение ваших проблем может привести к непреднамеренной сложности. Некоторые люди могут подойти к этой проблеме, пытаясь определить источник запроса и посмотреть, была ли это та же страница или нет. Все это на самом деле просто кодовые повязки, которые устраняют проблему, а не исправляют проблему. Если вы сохраняете разные «действия» на разных страницах вашего веб-сайта, вы можете сосредоточить эти страницы на их 1 задании и убедиться, что они справляются хорошо, вместо того, чтобы загромождать код всевозможными условиями и дополнительными сложностями, которых полностью избегать, если 1 страница имеет только 1 работу.