글 제목 참 길다.
제목을 최대한 짧고 간결하게 짓고 싶었는데, 이 증상에 대해서 설명하는 제목을 짧게 할 수가 없었다.
오늘을 해결해야 할 문제의 증상부터 설명하겠다.
모바일 환경에서 다음 페이지로 넘어가도 페이지네이션 버튼은 1로 고정되어 있다
페이지네이션 버튼이란 이 버튼을 말한다.
구글 블로그에서 이 버튼을 클릭해서 다른 페이지로 이동하면, 글 목록은 해당 페이지에 맞는 글 목록이 제대로 표시되고 있지만, 페이지네이션 버튼은 아무 변화 없이 계속 이대로인 문제를 발견했다.
이 페이지네이션 버튼은 보다시피 첫 번째 페이지에서 바로 4번째나 5번째 페이지로 한 번에 이동할 수가 없다.
3번째 페이지로 가야 4번째 페이지로 이동하는 버튼도 활성화가 되는 방식이다.
그런데 어느 페이지로 이동을 해도 (캡처한 이미지를 예로 들면 2, 3, 8번째 페이지로 이동해도) 페이지네이션 버튼은 계속 변화 없이 이 모양이니 4~7번째 페이지로는 갈 수가 없는 문제가 발생한다.
이 문제를 겪고 있는 사람들은 주로 데스크톱 환경에서는 이런 증상이 없는데, 모바일 환경에서만 이런 증상을 겪고 있을 가능성이 높을 거라고 예상한다.
경우에 따라서는 데스크톱 환경에서도, 모바일 환경에서도 동일하게 증상이 나타나는 사람도 있을 것이다. (내가 그랬던 것처럼)
구글 블로그 페이지네이션 버튼 에러의 원인
구글 블로그의 URL에서 ?m=1을 제거하는 방법
이 문제를 겪고 있는 사람들은 아마도 모바일 환경에서 블로그 URL에 표시되는 ?m=1을 제거하는 코드를 넣었을 거다.
만약 ?m=1을 제거하는 코드를 넣은 기억이 있다면 당장 제거하지 말고, 글을 끝까지 읽어보고 ?m=1도 제거하면서 페이지네이션 버튼도 정상적으로 작동하도록 수정한 코드로 바꾸도록 하자.
1. 유튜버가 알려줬던 코드를 넣을 경우 페이지네이션 에러의 원인
위에 링크한 이전 포스트에서 유튜버가 알려준 코드를 사용할 경우에는 모바일 환경에서만 페이지네이션 버튼의 에러가 발생한다.
그 코드는 URL에 ?m=1(혹은 &m=1)이 있을 경우, 그 위치부터 뒷부분을 통째로 제거하는 방식으로 작동한다.
예를 들어 모바일로 블로그의 첫 페이지에 접속하면 https://www.myblog.com/?m=1에서 ?m=1을 잘라내서 https://www.myblog.com/으로 URL이 바뀌면서 정상적으로 작동한다.
개별 포스트 페이지의 URL에서도 https://www.myblog.com/2025/09/post.html?m=1에서 ?m=1을 잘라내며 정상적으로 작동한다.
문제는 페이지네이션 버튼으로 다음 글 목록 페이지로 이동할 때다.
예를 들어 두 번째 페이지로 이동하면 https://www.myblog.com/search?.........&m=1#PageNo=2라는 URL에서 &m=1의 뒤에 위치한 #PageNo=2라는 매개변수까지 모두 잘라내서 페이지네이션 버튼은 항상 현재 첫 번째 페이지에 있는 것처럼 표시되는 에러를 발생시키는 것이다.
2. 내가 만든 코드에서 페이지네이션 에러가 발생한 원인
내가 수정한 코드는 확실히 아주 짧고 효율적인 코드였다.
그 코드의 작동 원리는 각 페이지마다 <link href="현재 페이지의 URL" rel="canonical"> 이런 코드가 있는데, 이 href 속성에는 반드시 ?m=1이 붙지 않는 URL이 들어간다.
그 URL을 그대로 가져오는 코드였다.
그런데 이 방법이 블로그의 첫 페이지나 개별 포스트 페이지에서는 효과적으로 작동하는데, 페이지네이션 버튼으로 다른 페이지로 이동할 경우에는 href 속성에 #PageNo=2 등의 매개변수가 들어가지 않는 URL이 들어가 있다.
그래서 나의 코드는 데스크톱 환경에서도 모바일 환경에서도 페이지네이션 버튼이 제대로 작동하지 않는 것이었다.
구글 블로그 페이지네이션 버튼 에러 해결 방법
var uri = window.location.toString();
var clean_uri = uri.replace('?m=1', '').replace('&m=1', '');
if (clean_uri !== uri) {
window.history.replaceState({}, document.title, clean_uri);
}
이 코드로 바꾸자.
이 코드는 URL에 ?m=1이나 &m=1 문자열이 있다면 딱 그 부분만 없애주는 코드다.
이 코드로 바꾸면 모바일에서 접속했을 때 URL에 ?m=1이나 &m=1이 들어가는 문제도 해결이 되면서 페이지네이션 버튼의 에러도 발생하지 않는다.
구글 블로그.. 분명 프로그래밍 언어를 배운 적 없는 사람에게는 어려운 부분이 있다.
하지만 이런 문제들을 해결할 수 있는 사람에게는 뭔가 도전할 미션을 자꾸 제공해 주는 재미있는 곳 같다..
근데 이제 이만하면 됐으니 구글 개발팀들은 블로그 좀 제대로 업그레이드 시켜줬으면 좋겠다.
특히 글 작성하는 에디터...!!! 아아앍!!!
응원이나 피드백이 담긴 댓글은 제가 계속 블로그를 해나갈 수 있는 원동력이 됩니다. 😊
지인에게 보여주고 싶은 글이었다면 URL을 복사해서 메신저나 소셜 미디어에 공유해 주세요.

0 Comments
댓글 쓰기
🔸 댓글은 블로그 운영자의 승인 후에 블로그에 표시됩니다.
🔸 비로그인 방문자 분께서는 '익명'보다 이름/URL로 댓글을 남겨주시면 감사하겠습니다. (URL은 생략 가능합니다.)
🔸 구글 로그인 방문자는 '알림 사용'에 체크를 하시면, 남겨주신 댓글에 대한 답글 알림을 메일로 받아볼 수 있습니다. 📩