1. Переход на внешнюю ссылку надо осуществлять через свой away.php скрипт. Он будет сохранять в бд признак просмотрел пользователь страницу или нет, и идентификатор запроса (кнопки которую надо показать)
2. Ajax скрипт, каждые n секунд опрашивает сервер на количество просмотренных страниц для данного запроса.
Выигрыш в том, что учёт логики будет идти на сервер, и парсерам будет сложнее выдергивать ссылки с вашего сайта. Все так же возможно, но сложнее. При этом у вас на с сервере остаётся полный доступ по ограничению парсеров.
Как вариант a:visited выставить что-либо из этого: opacity:0; position:absolulte; left: -999999; height: 0; overflow: hidden;
Другой вариант: на js при нажатии ссылки писать в localStorage селекторы этих ссылок и при загрузке страницы (или другом событии) просто удалять их из DOM.
Третий вариант, передавать инфу на бэк и там уже рулить состоянием ссылки, например на основе сессии.
В любом случае скрывать посещенные ссылки странная затея, но топик не об этом :)
1. Проверьте в chrome dev tools, что данные у Вас действительно уходят
2. Если уходят, проверьте редиректы на сервере, возможно, срабатывает какая-либо валидация и отправляет этот запрос редиректом куда-либо.
Не буду вдаваться в подробности зачем так надо, хотя все же интересно.
Можно сделать новый контроллер (к примеру ajaxLinkController - будет рулит всеми такими ссылками), в который передавать #goHome, а в ответ на ajax запрос получать json с нужным url, по которому и переходить впоследствии.