xe(rhymix) 짧은주소 사용 중 리디렉션으로 인한 '색인 생성 안됨' 문제 해결중
1. 문제 인식
가끔 구글 서치 콘솔에 들어가 보면
색인 되지 않은 페이지가 너무 많은 것이 눈에 거슬립니다.

리디렉션이 9만건 가까이 발생하고 있는데, 딱히 문제가 없어서 방치하고 있었습니다.
2. AI (gemini) 와 상담
AI(gemini) 에게 물어보니 이렇게 답변합니다.
색인이 생성되지 않는 주요 원인 상세 분석
1. 리디렉션이 포함된 페이지 (89,080개)
* 의미: 이 항목은 구글 검색 로봇(구글봇)이 특정 페이지 주소로 방문했지만, 웹사이트가 로봇을 다른 주소로 자동 안내(리디렉션)했다는 것을 의미합니다.
* 일반적인 경우: 예를 들어, 보안 접속을 위해 http:// 주소를 https://로 보내거나, example.com을 www.example.com으로 통일하는 등의 리디렉션은 매우 흔하고 권장되는 방식입니다.
* 주의할 점: 하지만 그 수가 매우 많다는 점을 고려할 때, 혹시 사이트 내부적으로 불필요한 리디렉션이 반복적으로 일어나고 있거나(리디렉션 체인), 의도치 않은 주소로 잘못 연결되고 있을 가능성이 있습니다. 이 부분은 확인이 필요합니다.2. 적절한 표준 태그가 포함된 대체 페이지 (40,420개)
* 의미: 내용이 거의 동일하거나 유사한 여러 페이지(예: PC 버전과 모바일 버전, 또는 같은 상품에 대한 다른 색상/옵션 페이지)가 있을 때, 그중 어떤 페이지가 '원본'인지를 rel="canonical"이라는 특수 태그로 지정했다는 뜻입니다. 구글은 이 태그를 발견하면 '아, 이 페이지들은 중복된 콘텐츠이고, 저쪽이
원본이구나'라고 판단하여 원본 페이지만 색인하고 나머지는 색인에서 제외합니다.
* 판단: 이것은 '오류'라기보다는, 중복 콘텐츠 문제를 피하기 위해 표준 페이지(Canonical Page) 설정을 매우 잘했을 때 나타나는 '정상적인' 결과일 가능성이 높습니다. 다만, 검색에 꼭 노출되어야 할 중요한 페이지가 의도치 않게 대체 페이지로 처리되고 있다면, canonical 태그 설정이 올바른지 검토해야 합니다.3. ‘NOINDEX’ 태그에 의해 제외되었습니다 (1,100개)
* 의미: 웹사이트 관리자가 HTML 코드에 <meta name="robots" content="noindex"> 태그를 직접 추가하여, "이 페이지는 검색 결과에 노출하지 말아달라"고 구글에 명시적으로 요청한 경우입니다.
* 판단: 로그인 페이지, 회원 전용 페이지, 관리자 페이지, 내부 검색 결과처럼 민감하거나 검색 노출 가치가 없는 페이지라면 의도된 설정일 것입니다. 하지만 중요한 정보가 담긴 페이지가 여기에 포함되어 있다면, 해당 페이지의 noindex 태그를 찾아서 제거해야 합니다.4. 액세스 금지(403), 찾을 수 없음(404), 서버 오류(5xx)
* 의미:
* 403 (액세스 금지): 서버가 구글봇의 접근을 "권한 없음" 이유로 거부하고 있습니다. 특정 디렉토리나 파일에 대한 접근 권한 설정이 잘못되었을 수 있습니다.
* 404 (찾을 수 없음): 구글봇이 존재하지 않는 페이지(과거에 삭제되었거나, 링크 주소가 잘못된)에 접근하려고 시도했습니다.
* 5xx (서버 오류): 구글봇이 페이지에 접근하는 순간, 웹사이트 서버 자체에서 처리 오류가 발생했습니다. 코드나 데이터베이스 문제일 수 있습니다.
* 판단: 이 오류들은 비록 개수는 적지만, 사이트의 신뢰도와 사용자 경험에 직접적인 악영향을 주므로 가장 먼저 해결해야 할 중요한 문제들입니다.향후 해결 방안 제안
가장 많은 비중을 차지하는 '리디렉션'과 '표준 태그' 문제는 현재 설정이 의도된 것인지 확인하는 과정이 우선적으로 필요하며, 4xx/5xx 오류들은 비교적 시급하게 수정하는 것이 좋습니다.
문제의 원인을 좀 더 정확하게 진단하고 실질적인 해결책을 찾기 위해서는 웹사이트가 어떻게 만들어졌는지 아는 것이 중요합니다. 혹시 웹사이트를 어떤 기술 스택(예: Python Flask/Django, Node.js, PHP, WordPress, 혹은 순수 HTML 등)으로 개발하고 운영하고 계신가요?
파일 목록에 app.py가 있는 것으로 보아, Python 기반의 웹 프레임워크(Flask 등)를 사용하고 계실 가능성이 높아 보입니다. 만약 그렇다면, 해당 파일의 소스 코드를 함께 검토하며 URL 처리, 리디렉션 로직, canonical 태그 생성 방식 등을 분석하여 문제의 근본 원인을 찾아낼 수 있습니다.
원하신다면, 웹사이트 기술 스택에 대한 정보를 바탕으로 문제 해결을 위한 구체적인 다음 단계를 함께 진행해 보겠습니다.
현재 짧은 주소를 사용중인데, 나머지 긴 주소에 대해 리디렉션이 너무 많이 일어나는 중이라는 설명이 있었고,
크롤러 자원 낭비를 일으키는 문제이며, 검색 결과가 제대로 반영되는 것에 좋지 않은 영향을 미친다고 하였습니다.
실제 긴 주소 페이지를 읽어보더니
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✓ Shell try { Invoke-WebRequest -Uri "https://allcalc.org/board_free2015/39376?l=en&order_type=desc&sort_index=regdate&m=0&menu_srl=61&page=11" -Maximu… │
│ │
│ │
│ │
│ StatusCode : 302 │
│ StatusDescription : Found
302 리디렉션이 실제 발생되고 있음을 확인시켜 주네요.
302 말고 301 이 적당하다고 제안해 주었습니다.
추가로 수차례 대화를 통해 추가 분석을 한 결과, 302가 발생하는 원인이 애드온 때문이라고 진단해 주었습니다.
rhymix 관리자 페이지에 들어가 보니 언제 설치했는지 기억도 나지 않는 "mid 숨기기 애드온" 이 있더라구요.
✦ 네! 드디어 찾았습니다. 전체 코드에서 검색하니 문제의 원인이 되는 핵심 코드가 발견되었습니다.
분석 결과: 'hide_mid' 애드온이 302 리디렉션의 원인
보내주신 검색 결과에서 가장 주목해야 할 부분은 바로 이 파일입니다.
* 파일: /home/xe/addons/hide_mid/hide_mid.addon.php
* 코드: header('location:' . getNotEncodedUrl('', 'document_srl', $this->document_srl));이 코드가 문제인 이유:
이 코드는 mid(게시판 아이디)를 주소에서 숨기고 document_srl(글 번호)만 남기는, 즉 긴 주소를 짧은 주소로 리디렉션하는 역할을 합니다. 이것이 바로 사용자님께서 겪고 계신 현상입니다.
하지만 header() 함수를 사용할 때 리디렉션 종류(영구 또는 임시)를 명시하지 않으면, PHP는 기본적으로 302 임시 리디렉션으로 처리합니다. 이것이 구글 서치 콘솔에서 수많은 '리디렉션' 항목이 잡히는 원인입니다.
해결책: 301 영구 리디렉션으로 코드 수정
이 문제를 해결하려면 해당 코드를 301 영구 리디렉션으로 명확하게 지정해주어야 합니다.
원격 서버에 접속하여 /home/xe/addons/hide_mid/hide_mid.addon.php 파일을 여시고, 아래와 같이 코드를 수정해주세요.
기존 코드:
1 header('location:' . getNotEncodedUrl('', 'document_srl', $this->document_srl));
수정할 코드:
1 header('location:'. getNotEncodedUrl('', 'document_srl', $this->document_srl), true, 301);
차이점은 header() 함수의 마지막에 , true, 301을 추가하여 이것이 '영구적인 이동'임을 명시하는 것입니다.수정 후 예상 효과:
이 수정 사항을 적용하면, 이제 구글봇은 이 리디렉션을 '영구적'인 것으로 인지하게 됩니다. 따라서 점차적으로 긴 파라미터 주소를 크롤링하는 것을 멈추고, 모든 검색엔진의 평판을 짧은 대표 주소로 통합하게 될 것입니다. 서치 콘솔의 '리디렉션' 항목은 시간이 지나면서 점차 줄어들 것입니다.
다른 파일들에서도 location:을 사용하는 부분이 발견되었지만, '리디렉션이 포함된 페이지' 89,080개의 대부분은 이 hide_mid 애드온 하나를 수정하는 것만으로 해결될 가능성이 매우 높습니다.
우선 이 부분을 먼저 수정해 보시는 것을 추천합니다.
조언에 따라 애드온 파일 수정함.
3. 수정 결과는 과연?
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✓ Shell try { Invoke-WebRequest -Uri "https://allcalc.org/board_free2015/39376?l=en&order_type=desc&sort_index=regdate&m=0&menu_srl=61&page=11" -Maximu… │
│ │
│ │
│ │
│ StatusCode : 301 │
│ StatusDescription : Moved Permanently │
│ Content : │
│ RawContent : HTTP/1.1 301 Moved Permanently │
│ Transfer-Encoding: chunked │
│ Connection: keep-alive │
│ Content-Type: text/html; charset=UTF-8 │
│ Date: Thu, 18 Dec 2025 08:45:27 GMT │
│ Set-Cookie: lang_type=en; expires=Fri, ... │
일단 페이지 로딩 결과는 301로 적절하게 바뀌었음을 확인했습니다.
다시 구글 서치 콘솔로 들어가서 리디렉션 주소에 대해 "유효성 검사"를 눌러 봤습니다.

이건 바로 안되는군요.
얼마나 걸릴지 모르겟지만... 해결되었기를 기대해 봅니다. 나중에 댓글로 내용 갱신하겠습니다.
4. 소감
데이터가 있고, 그 데이터에 접근할 권한만 주어진다면
AI는 많은 변화를 일으킬 수 있을 것 같습니다.
지금은 읽을 권한도 별로 없고,
수정할 권한도 별로 없지만,
AI가 안정화되면 될수록 많은 부분을 그냥 맡겨버릴 것 같은데
그렇게 되면 우리가 모르는 사이에 세상이 참으로 많이 바뀔 것 같습니다.
Attention is all you need 는 이미 지나갔고,
Access is all you need 가 되지 않을까요?
세상의모든계산기 님의 최근 댓글
교점이 2개 이상일때 모든 값을 구하는 법 계산기마다 가능/불가능이 갈릴 수도 있고, 수식에 따라 가능/불가능이 갈릴 수도 있죠. 불확실할때는 그래프로 확인하세요. 2025 12.16 T가 410인 해를 찾는 방법 -> 초기값을 입력하세요. [공학용 계산기] 공학용 계산기의 꽃? solve (솔브) 기능 이해하기 (Newton-Raphson 법, 뉴튼법) https://allcalc.org/11532 2025 12.16 참고 - [공학용 계산기] 정적분 계산 속도 벤치마크 비교 https://allcalc.org/9677 2025 12.11 다른 계산기의 경우와 비교 1. TI-nspire CAS ㄴ CAS 계산기는 가능한 경우 부정적분을 먼저하고, 그 값에 구간을 대입해 최종값을 얻습니다. ㄴ 부정적분이 불가능할 때는 수치해석적 방법을 시도합니다. 2. CASIO fx-991 ES Plus ㄴ CASIO 계산기의 경우, 적분할 함수에 따라 시간이 달라지는 것으로 알고 있는데, 정밀도를 확보할 별도의 알고리즘을 채택하고 있는 것이 아닐까 생각되네요. 2025 12.11 일반 계산기는 보통 리셋기능이 따로 없기 때문에, 다른 요인에 영향을 받을 가능성은 없어 보이구요. '원래는 잘 되었는데, 지금은 설정 값이 날아간다'면 메모리 값을 유지할만큼 배터리가 꾸준하게 공급되지 않기 때문일 가능성이 높다고 봐야겠습니다. - 태양광이 있을 때는 계산은 가능하지만, 서랍등에 넣으면 배터리가 없어서 리셋 https://blog.naver.com/potatoyamyam/223053309120 (교체 사진 참조) 1. 배터리 준비: * 다이소 등에서 LR54 (LR1130) 배터리를 구매합니다. (보통 4개 들이 1,000원에 판매됩니다. LR44와 높이가 다르니 혼동하시면 안됩니다.) 2. 준비물: * 작은 십자드라이버 (계산기 뒷면 나사용. 이것도 없으시면 다이소에서...) 3. 커버 분해: * 계산기 뒷면의 나사를 풀고, 머리 부분(윗부분)의 커버를 조심스럽게 분해합니다. (참고해주신 블로그 사진을 보시면 이해가 빠르실 겁니다.) 4. 배터리 교체: * 기존 배터리를 빼냅니다. * 새 LR54 배터리의 '+'극 방향을 정확히 확인하여 제자리에 넣어줍니다. (대부분의 경우 '+'극이 위로 보이도록 넣습니다.) 5. 조립: * 커버를 다시 닫고 나사를 조여줍니다. * 블로그 사진을 보니 배터리 연결선 등이 눌려서 씹혀 있네요. 원래 씹히도록 설계를 안하는데, 원래 그렇게 만들어 놓은 건지? 모르겠네요. 여튼 씹히면 단선될 가능성이 있으니, 잘 보시고 플라스틱 틈새 등으로 적절히 배치해서 안씹히게 하는 것이 좋습니다. 6. TAX 재설정: * 계산기의 전원을 켜고 TAX 요율을 10%로 다시 설정합니다. 2025 12.10